home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 76 / XENIATGM66.iso / Indiana Jones / Indiana Jones.exe / RESOURCE / PREVIEW.GOB / cog_13_nub_cinematic_end.cog < prev    next >
Text File  |  1999-11-15  |  31KB  |  1,026 lines

  1. # Jones 3D Cog Script
  2. #
  3. # 13_NUB_Cinematic_End.cog
  4. #
  5. # Indy loses the machine parts to Turner
  6. #
  7. # [HB] [GGJ]  All changes by GGJ include initials.
  8. #
  9. # (C) 1999 LucasArts Entertainment Company LLC. All Rights Reserved
  10. #
  11. # ==============================================================================
  12.  
  13. symbols
  14.  
  15. # .................................. MESSAGES ..................................
  16.  
  17.     message        startup
  18.     message        entered
  19.     message        callback
  20.     message        pulse
  21.     
  22. # .................................. KEYFRAMES .................................
  23.     
  24.     keyframe    in_armsCrossed=0in_stand2.key            local
  25.     keyframe    in_handsONhips=0in_stand4.key            local
  26.     keyframe    in_crossArms=0in_stand1_bd_2.key           local
  27.     keyframe    in_handsTOhips=0in_stand1_bd_4.key           local
  28.     keyframe    in_botharmsup=0in_armsup_1_1.key        local
  29.     keyframe    in_think=0in_thinking_4_4.key            local
  30.  
  31.     keyframe    in_stand7=0in_stand7.key                local
  32.     keyframe    in_stand8=0in_stand8.key                local
  33.     keyframe    in_stand9=0in_stand9.key                   local
  34.     keyframe    in_7_bd_8=0in_stand7_bd_8.key            local
  35.     keyframe    in_8_bd_7=0in_stand8_bd_7.key            local
  36.     keyframe    in_8_bd_9=0in_stand8_bd_9.key            local
  37.     keyframe    in_turnRT=0in_turnright_9_1.key            local
  38.     keyframe    in_pushhat9=0in_figithat_9_9.key        local
  39.     keyframe    in_handoverparts=0in_givepart_8_8.key    local
  40.     keyframe    in_climbladder=0in_climblad.key            local
  41.     keyframe    in_pullimps=0in_key_pull_1_hold.key        local
  42.  
  43.     keyframe    so_crouch=0so_stand7.key                local
  44.     keyframe    so_crawl=0so_crawl_bd_7.key                local
  45.     keyframe    so_creach=0so_reach_7.key                local
  46.     keyframe    so_dropladder=0so_droplad_7_2.key        local
  47.  
  48.     keyframe    tu_crouch=0tu_stand4.key                local
  49.     keyframe    tu_crouchdown=0tu_stand3_bd_4.key        local
  50.     keyframe    tu_creach=0tu_righthnd_4_4.key            local
  51.     keyframe    tu_takeparts=0tu_stand4_bd_5.key        local
  52.     keyframe    tu_standup=0tu_stand4_bd_3.key            local
  53.     
  54.     keyframe    vo_armsATback=vo_stand2_arms_back.key    local
  55.     keyframe    vo_armsATfold=vo_stand1_arms_front.key    local
  56.  
  57.     keyframe    vo_cleanglasses=0vo_glasses_2_2.key        local # mks@61&180/cb16
  58.     keyframe    vo_leftup2=0vo_leftup_2_1.key            local
  59.     keyframe    vo_leftup3=0vo_leftup_3_3.key            local
  60.     keyframe    vo_bothup=0vo_bothup_3_3.key            local
  61.  
  62.     keyframe    vo_GunPull=0vo_gun_pull.key                local 
  63.     keyframe    vo_stand4=0vo_stand4.key                local
  64.     keyframe    vo_damarduk=0vo_damardukhimself_3_2.key    local
  65.     keyframe    vo_Gangster=0vo_friendgangster_4_4.key    local
  66.     keyframe    vo_GunPut=0vo_gun_put.key                local # mk@19x/cb16
  67.     keyframe    vo_iKnow=0vo_andiknow_3.key                local
  68.  
  69.     keyframe    vo_SSSR=0vo_socialistrepublic_3_4.key    local
  70.     
  71.     keyframe    ldr_folded=0lad_sitedge.key                local
  72.     keyframe    ldr_fall=0lad_drop1.key                    local
  73.     
  74. # .................................. MODELS ....................................
  75.         
  76.     model          mod_in_imps=hand_in_impbundle.3do        local
  77.     model          mod_tu_imps=hand_tu_impbundle.3do        local
  78.     model          mod_vo_gun=weap_tokarev.3do                local
  79.     model          mod_vo_holster=holster_vo_notok.3do        local
  80.     model          mod_vo_head=head_vo_noglasses.3do        local
  81.     model          mod_vo_glasses=hand_vo_glasses.3do        local
  82.             
  83. # .................................. SOUNDS ....................................
  84.  
  85.     sound        in_ow=Inxj017a.wav                        local
  86. #    sound        in_oww=Inxj017g.wav                        local
  87. #    sound        in_unnh=Inxj018a.wav                    local
  88.  
  89.     sound        so_indyisyou=Nb09s01.wav                local
  90.     sound        in_moreless=Nb09j02.wav                    local
  91.     sound        so_allright=Nb09s03.wav                    local
  92.     sound        in_hurtlive=Nb09j04.wav                    local
  93.     sound        so_ogood=Nb09s05.wav                    local
  94.     sound        so_handparts=Nb09s06.wav                local
  95.     sound        so_indy=Nb09s07.wav                        local
  96.     sound        in_whoswe=Nb09j08.wav                    local
  97.     sound        tu_comejones=Nb09t09.wav                local
  98.     sound        in_idunno=Nb09j10.wav                    local
  99.     sound        tu_lovecountry=Nb09t11.wav                local
  100.     sound        vo_notrustam=Nb09v12.wav                local
  101.     sound        vo_incccpname=Nb09v13.wav                local
  102.     sound        tu_giveparts=Nb09t14.wav                local
  103.     sound        vo_partsafeme=Nb09v15.wav                local
  104.     sound        in_whatchoice=Nb09j16.wav                local
  105.     sound        so_sorryindy=Nb09s17a.wav                local    #GGJ  added "a"
  106.     sound        so_andthanx=Nb09s17b.wav                local
  107.     sound        vo_drooglives=Nb09v18.wav                local
  108.     sound        in_cheersmeup=Nb09j19.wav                local
  109.     sound        vo_babelturmoil=Nb09v20.wav                local
  110.     sound        in_yammer=Nb09j21.wav                    local
  111.     sound        vo_mardukrevenge=Nb09v22.wav            local
  112.     sound        vo_luckyprofs=Nb09v23.wav                local
  113.     sound        vo_tootimid=Nb09v24.wav                    local
  114.     sound        vo_backtobooks=Nb09v25.wav                local
  115.     
  116.     sound        slabRumbleSnd=pru_boulder_rolling_c.wav    local    #GGJ
  117.     sound        slabStartSnd=nub_stonedoor_start_c.wav    local    #GGJ
  118.     sound        slabStopSnd=pru_trapblock_stuck_c.wav    local    #GGJ
  119.     sound        ladderDropSnd=vol_ropeladder_throw.wav    local    #GGJ
  120.     sound        partMus=mus_nub_turnerparts.wav            local    #GGJ
  121.     sound        windSnd=gen_wind07.wav                    local    #GGJ
  122.     sound        bagSnd=gen_bazooka_pull.wav                local    #GGJ
  123.  
  124. # ............................... ACTOR THINGS .................................
  125.  
  126.     thing        player                                    local
  127.     thing        indy                                    linkid=0
  128.     thing        sophia
  129.     thing        turner
  130.     thing        volod
  131.  
  132. # .............................. OBJECT THINGS .................................
  133.  
  134.     thing        trapdoor_1                                        #GGJ-removed nolink
  135.     thing        trapdoor_2                                        #GGJ-removed nolink
  136.     thing        lightshaft                                nolink
  137.     thing        ladder                                    nolink
  138.     thing        dynaLight                                        #GGJ
  139.     thing        dynaLight1                                        #GGJ
  140.     thing        dynaLight2                                        #GGJ
  141.  
  142. # .............................. CAMERA THINGS .................................
  143.  
  144.     thing        cam_1                                    nolink
  145.     thing        cam_2                                    nolink
  146.     thing        cam_3                                    nolink
  147.     thing        cam_4                                    nolink
  148.     thing        cam_5                                    nolink
  149.     thing        cam_6                                    nolink
  150.     thing        cam_7                                    nolink
  151.     thing        cam_8                                    nolink
  152.     thing        cam_9                                    nolink
  153.     thing        cam_10a                                    nolink
  154.     thing        cam_10b                                    nolink
  155.     thing        cam_10c                                    nolink
  156.     thing        cam_11                                    nolink
  157.     thing        cam_12                                    nolink
  158.  
  159.     thing        ct_1                                    nolink
  160.     thing        ct_2                                    nolink
  161.     thing        ct_3                                     nolink
  162.     thing        ct_4                                    nolink
  163.     thing        ct_5a                                    nolink
  164.     thing        ct_5b                                    nolink
  165.     thing        ct_5c                                    nolink
  166.     thing        ct_5d                                    nolink
  167.     thing        ct_6                                    nolink
  168.     thing        ct_7                                    nolink
  169.     thing        ct_8                                    nolink
  170.     thing        ct_9                                    nolink
  171.     thing        ct_10                                    nolink
  172.     thing        ct_11                                    nolink
  173.     thing        ct_12                                    nolink
  174.     thing        ct_13a                                    nolink
  175.     thing        ct_13b                                    nolink
  176.     thing        ct_14                                    nolink
  177.     thing        ct_15                                    nolink
  178.     thing        ct_16                                    nolink
  179.     thing        ct_17                                    nolink
  180.     thing        ct_18                                    nolink
  181.  
  182. # .............................. TARGET THINGS .................................
  183.  
  184.     thing        in_mk_1                                    nolink
  185.     thing        in_mk_2                                    nolink
  186.     thing        in_mk_3                                    nolink
  187.     thing        in_mk_4                                    nolink
  188. #    thing        in_mk_5                                    nolink
  189. #    thing        in_mk_6                                    nolink
  190.     thing        in_mk_7                                    nolink
  191.  
  192. #    thing        so_mk_1                                    nolink
  193.  
  194.     thing        tu_mk_1                                    nolink
  195.  
  196.     thing        vo_mk_1                                    nolink
  197.     thing        vo_mk_2                                    nolink
  198.  
  199. # ............................... VAR THINGS ...................................
  200.  
  201. #    thing        indyCamTarget                            local # created on fly
  202. #    thing        kidCamTarget                            local # created on fly
  203. #    thing        whichcam                                local # var
  204. #    thing        entercam                                local # var
  205. #    thing        looker                                    local # var
  206. #    thing        lookee                                    local # var
  207.     thing        fadeplate                                      #GGJ
  208.  
  209. # ........................ OTHER ENGINE REFERENCES .............................
  210.             
  211.     #cog            endcog                                      # Removed GGJ
  212.     
  213.     surface        startface
  214.  
  215. # ............................... VARIABLES ....................................
  216.     
  217.     vector        posOffset                                local
  218.     vector        angOffset                                local
  219.  
  220.  
  221.     vector        v_tpos                                    local
  222.     vector        v_ipos                                    local
  223.     vector        v_aim                                    local
  224.  
  225.     flex        f_X                                        local
  226.     flex        f_Y                                        local
  227.  
  228.     
  229.     flex        in_rotRate                                local
  230.  
  231.     flex        rumbleVol=0.35                            local #GGJ        increased from .2 to .35 per DaveL
  232.     int            rumbleTrack                                local #GGJ
  233.     int            windTrack                                local #GGJ
  234.  
  235.     int            cutSceneState=0                            local # overall state var
  236.  
  237.     int            in_collType                                local
  238.     
  239.     int            in_keyTrack1                            local
  240.     int            in_keyTrack2                            local
  241.     int            so_keyTrack1                            local
  242.     int            tu_keyTrack1                            local
  243.     int            tu_keyTrack2                            local
  244.     int            vo_keyTrack1                            local
  245.     int            vo_keyTrack2                            local
  246.     int            vo_gunTrack                                local
  247.     int            ldr_keyTrack1                            local
  248.  
  249.     int            in_swapItem1                            local
  250.     int            tu_swapItem1                            local
  251.     int            vo_swapItem1                            local
  252.     int            vo_swapItem2                            local
  253.     int            swapevent=0                                local
  254.             
  255.     int            curSound                                local
  256.     int            curCam                                    local
  257.     int            vibe                                    local
  258.  
  259.     int            imp_1=14                                local # inventory define
  260.     int            imp_2=15                                local # inventory define
  261.     int            imp_3=16                                local # inventory define
  262.     int            imp_4=17                                local # inventory define
  263.  
  264.     
  265. end
  266.  
  267. # ==============================================================================
  268.  
  269. code
  270.  
  271. # ..............................................................................
  272.  
  273. startup:
  274.  
  275.     # Pointer to Player...
  276.     player = GetLocalPlayerThing();
  277.  
  278.     # Prep actors...
  279.     curCam = GetCurrentCamera();
  280.     SetThingFlags(indy, 0x80000);
  281.     SetThingFlags(sophia, 0x80000);
  282.     SetThingFlags(turner, 0x80000);
  283.     SetThingFlags(volod, 0x80000);
  284.     SetThingFlags(ladder, 0x80000);
  285.     AISetCutSceneMode(indy);
  286.     AISetCutSceneMode(sophia);
  287.     AISetCutSceneMode(turner);
  288.     AISetCutSceneMode(volod);
  289.     in_rotRate = GetThingMaxRotVel(indy);
  290.     in_collType = GetCollideType(indy);
  291.  
  292.     # Prep set...
  293.     ClearThingFlags(lightshaft, 0x80000);
  294.     SetThingAlpha(lightshaft, 0.0);
  295.     SetCollideType(lightshaft, 0);
  296.     SetThingFlags(lightshaft, 0x80000);
  297.     SetCollideType(trapdoor_1, 0);
  298.     SetCollideType(trapdoor_2, 0);
  299.     SetThingAlpha(fadeplate, 0.0);
  300.     SetCollideType(fadePlate, 0);                    #GGJ
  301.  
  302.     return;
  303.  
  304. # ..............................................................................
  305.  
  306. entered:
  307.  
  308.     if (cutSceneState != 0)
  309.     {
  310.         return;
  311.     }
  312.  
  313.     # Prep...
  314.     ResetCameraFOV(0, 0.0);
  315.     cutSceneState = 1;
  316.     curCam = GetCurrentCamera();
  317.     in_collType = GetCollideType(indy);
  318.             
  319.     StartCutScene(1); # health meter should fade
  320.  
  321.     SetActorFlags(player, 0x200000);
  322.     StopThing(player);
  323.     CopyPlayerHolsters(player, indy);
  324.     # Sleep(1.5); # wait for indy to stand up
  325.     SetThingflags(player, 0x80000);
  326.     ClearThingFlags(indy, 0x80000);
  327.     TeleportThing(indy, in_mk_1);
  328.  
  329.     # Cut to Indy standing up into exit room...
  330.     SetCameraLookInterp(2, 0); # no p & t
  331.     SetCameraPosInterp(2, 0); # no dolly
  332.     SetCameraFocus(2, cam_1);
  333.     SetCameraSecondaryFocus(2, ct_1);
  334.     SetCurrentCamera(2);
  335.     SetCameraFOV(85, 0, 0.0);
  336.  
  337.     # Prep Sophia...
  338.     ClearThingFlags(sophia, 0x80000);
  339.     SetThingFlags(sophia, 0x10);
  340.     so_keyTrack1 = PlayKey(sophia, so_crouch, 2, 0x10, 0);
  341.  
  342.     # Track Indy walking to dais...
  343.     SetCameraInterpSpeed(2, 4.02);
  344.     SetCameraLookInterp(2, 1);
  345.     SetCameraPosInterp(2, 1);
  346.     Sleep(0.01);
  347.     SetCameraFocus(2, cam_2);
  348.     SetCameraSecondaryFocus(2, ct_2);
  349.     SetCameraFOV(45, 1, 5.81);
  350.     AISetMoveSpeed(indy, 1.0);
  351.     AISetLookThing(indy, in_mk_2);
  352.     AISetMoveThing(indy, in_mk_2, 0);
  353.     Sleep(2.5);
  354.     
  355.     # TO DO: rumble rumble...
  356.     rumbleTrack = PlaySoundThing(slabRumbleSnd, trapdoor_2, rumbleVol, -1.0, -1.0, 0x1);    #GGJ
  357.     
  358.     SetPulse(0.01);
  359.  
  360.     Sleep(1.0);
  361.     SetPulse(0.0);
  362.     Sleep(0.5);
  363.     SetPulse(0.01);
  364.     SetCameraInterpSpeed(2, 1.3);
  365.     Sleep(0.01);
  366.     SetCameraSecondaryFocus(2, ct_3);
  367.     in_keyTrack1 = PlayKey(indy, in_stand8, 2, 0x10, 0);
  368.     Sleep(1.0);
  369.  
  370.     # Prep the ladder...
  371.     ClearThingFlags(ladder, 0x80000);
  372.     ldr_keyTrack1 = PlayKey(ladder, ldr_folded, 2, 0x10, 0);
  373.  
  374.     # Trapdoors fall open...
  375.     Rotate(trapdoor_1, 20, 0, 0.4);
  376.     Rotate(trapdoor_2, -20, 0, 0.4);
  377.     
  378.     # Light floods into the chamber...
  379.     ClearThingFlags(lightshaft, 0x80000);
  380.     ThingFadeAnim(lightshaft, 0.0, 1.0, 1.0, 0);
  381.     Sleep(0.4);
  382.     
  383.     PlaySoundThing(slabStartSnd, trapdoor_2, 1.0, -1.0, -1.0, 0x0);        #GGJ
  384.     Rotate(trapdoor_1, 30, 0, 0.3);
  385.     Rotate(trapdoor_2, -30, 0, 0.3);
  386.     Sleep(0.3);
  387.     
  388.     PlaySoundThing(SlabStopSnd, trapdoor_2, 1.0, -1.0, -1.0, 0x0);        #GGJ
  389.     Rotate(trapdoor_1, 42, 0, 0.1);
  390.     Rotate(trapdoor_2, -42, 0, 0.1);
  391.     
  392.     Sleep(0.5);
  393.     
  394.     SetPulse(0.0);
  395.     
  396.     StopSound(rumbleTrack, 0.0);                                        #GGJ
  397.     windTrack = PlaySoundThing(windSnd, lightshaft, 1.0, -1.0, -1.0, 0x1);                #GGJ
  398.     
  399.     Sleep(0.3); # take a beat
  400.     
  401.     # Cut to Indy wincing...
  402.     SetCameraLookInterp(2, 0); # no p & t
  403.     SetCameraPosInterp(2, 0); # no dolly
  404.     SetCameraFocus(2, cam_3);
  405.     SetCameraSecondaryFocus(2, ct_4);
  406.     SetCameraFOV(40, 0, 0.0);
  407.     SetThingLight(dynaLight, VectorSet(1.0, 1.0, 1.0), 0.2, 0.01);        #GGJ
  408.     SetThingLight(dynaLight1, VectorSet(1.0, 1.0, 1.0), 0.2, 0.01);        #GGJ
  409.     SetThingLight(dynaLight2, VectorSet(1.0, 1.0, 1.0), 0.2, 0.01);        #GGJ
  410.     
  411.     # Indy groans...
  412.     curSound = PlayVoice(indy, in_ow, 1.0, 0);
  413.     StopKey(indy, in_keyTrack1, 0.0);
  414.     in_keyTrack1 = PlayKey(indy, in_stand7, 2, 0x10, 0);
  415.     PlayKey(indy, in_8_bd_7, 4, 0x12, 0);
  416.     Sleep(0.01);
  417.  
  418.     # Zoom in quick...
  419.     SetCameraFOV(20, 1, 1.0);
  420.     Sleep(1.0);
  421.     WaitForSound(curSound);
  422.     
  423.     # Cut to Sophia over Indy's shoulder...
  424.     SetCameraFocus(2, cam_4);
  425.     SetCameraSecondaryFocus(2, ct_5a);
  426.     SetCameraFOV(50, 0, 0.0);
  427.  
  428.     # Sophia moves into view looking over rim of trapdoor...
  429.     PlayKey(sophia, so_crawl, 4, 0x12, 0);
  430.     ClearThingFlags(sophia, 0x10);
  431.     Sleep(1.4);
  432.     
  433.     # Sophia: "Indy, is that you?"
  434.     curSound = PlayVoice(sophia, so_indyisyou, 1.0, 0);
  435.     WaitForSound(curSound);
  436.  
  437.     # Indy: "More or less."
  438.     curSound = PlayVoice(indy, in_moreless, 1.0, 0);
  439.     StopKey(indy, in_keyTrack1, 0.0);
  440.     in_keyTrack1 = PlayKey(indy, in_stand8, 2, 0x10, 0);
  441.     PlayKey(indy, in_7_bd_8, 4, 0x12, 0);
  442.     WaitForSound(curSound);
  443.  
  444.     # Sophia: "Are you all right?"
  445.     curSound = PlayVoice(sophia, so_allright, 1.0, 0);
  446.     WaitForSound(curSound);
  447.  
  448.     # Indy: "I am one hurting archaeologist, but I'll live."
  449.     curSound = PlayVoice(indy, in_hurtlive, 1.0, 0);
  450.     in_keyTrack2 = PlayKey(indy, in_botharmsup, 4, 0x12, 0);
  451.     Sleep(1.5);
  452.     StopKey(indy, in_keyTrack2, 0.5); # fade head tilting up back in
  453.     SetCameraInterpSpeed(2, 3.0);
  454.     SetCameraLookInterp(2, 1);
  455.     SetCameraPosInterp(2, 1);
  456.     WaitForSound(curSound);
  457.  
  458.     # Sophia: "Oh good.  I was worried."
  459.     curSound = PlayVoice(sophia, so_ogood, 1.0, 0);
  460.     Sleep(0.4);
  461.     WaitForSound(curSound);
  462.  
  463.     # Push in on Sophia...
  464.     SetCameraFocus(2, cam_5);
  465.     SetCameraSecondaryFocus(2, ct_5b);
  466.     SetCameraFOV(30, 1, 3.0);
  467.     ThingFadeAnim(lightshaft, 1.0, 0.0, 2.0, 0); # penetrate light well softly
  468.  
  469.     # Sophia: "Hand up those parts...get you out of there."
  470.     curSound = PlayVoice(sophia, so_handparts, 1.0, 0);
  471.     PlayKey(sophia, so_creach, 4, 0x12, 0);
  472.     WaitForSound(curSound);
  473.  
  474.     # Cut to Indy...
  475.     SetCameraLookInterp(2, 0);
  476.     SetCameraPosInterp(2, 0);
  477.     SetCameraFocus(2, cam_6);
  478.     SetCameraSecondaryFocus(2, ct_6);
  479.     SetCameraFOV(55, 0, 0.0);
  480.     Sleep(1.0); # a long beat
  481.  
  482.     # Sophia Voice: "Indy?"
  483.     curSound = PlayVoice(sophia, so_indy, 1.0, 0);
  484.     StopKey(indy, in_keyTrack1, 0.0);
  485.     in_keyTrack1 = PlayKey(indy, in_stand9, 2, 0x10, 0);
  486.     PlayKey(indy, in_8_bd_9, 4, 0x12, 0);
  487.     WaitForSound(curSound);
  488.  
  489.     # Indy: "Who's we?"
  490.     curSound = PlayVoice(indy, in_whoswe, 1.0, 0);
  491.     WaitForSound(curSound);
  492.  
  493.     # Cut to Turner and Sophia over Indy's shoulder...
  494.     SetCameraFocus(2, cam_7);
  495.     SetCameraSecondaryFocus(2, ct_7);
  496.     SetCameraFOV(45, 0, 0.0);
  497.     
  498.     # TO DO: Turner moves into view at rim of trapdoor...
  499.     ClearThingFlags(turner, 0x80000);
  500.     tu_keyTrack1 = PlayKey(turner, tu_crouch, 2, 0x10, 0);
  501.     PlayKey(turner, tu_crouchdown, 4, 0x12, 0);
  502.     
  503.     # Turner: "Come on, Jones.  We need those parts."
  504.     curSound = PlayVoice(turner, tu_comejones, 1.0, 0);
  505.     WaitForSound(curSound);
  506.  
  507.     # Cut to closer shot of Turner...
  508.     SetCameraFocus(2, cam_8);
  509.     SetCameraSecondaryFocus(2, ct_8);
  510.     SetCameraFOV(35, 0, 0.0);
  511.  
  512.     # Turner: "Don't you love your country?  In the name of USA..."
  513.     curSound = PlayVoice(turner, tu_lovecountry, 1.0, 0);
  514.     Sleep(1.0);
  515.     PlayKey(turner, tu_creach, 4, 0x12, 0);
  516.  
  517.     # Cheat Indy to new mark offscreen...
  518.     TeleportThing(indy, in_mk_3);
  519.     WaitForSound(curSound);
  520.  
  521.     # Cut to uncertain Indy...
  522.     SetCameraFocus(2, cam_9);
  523.     SetCameraSecondaryFocus(2, ct_9);
  524.     SetCameraFOV(55, 0, 0.0);
  525.  
  526.     # Indy: "I dunno..."
  527.     curSound = PlayVoice(indy, in_idunno, 1.0, 0);
  528.     in_keyTrack2 = PlayKey(indy, in_pushhat9, 4, 0x12, 0);        #GGJ added track 
  529.     WaitForSound(curSound);
  530.     
  531.     # Volodnikov Voice: "Don't trust your fellow Americans..."
  532.     curSound = PlayVoice(volod, vo_notrustam, 1.0, 0);
  533.         
  534.     # Volodnikov enters...
  535.     ClearThingFlags(volod, 0x80000);
  536.     ClearActorFlags(volod, 0x1000000); # don't issue damage to indy
  537.     TeleportThing(volod, vo_mk_1);
  538.  
  539.     # RT: Remove gun from holster & put it in Volodnikov's hand 
  540.     vo_swapItem1 = SetThingMesh(volod, 8, mod_vo_gun, 0);
  541.     vo_swapItem2 = SetThingMesh(volod, 19, mod_vo_holster, 0);
  542.     
  543.     # RT: Start the gun pull animation
  544.     vo_gunTrack = PlayKeyEx(volod, vo_GunPull, 0, 8, 0x14, 0);
  545.  
  546.     Sleep(0.01);
  547.  
  548.     # Indy turns...
  549.     StopKey(indy, in_keyTrack1, 0.0);
  550.     StopKey(indy, in_keyTrack2, 0.0);                            #GGJ added
  551.     in_keyTrack1 = PlayKey(indy, in_turnRT, 6, 0x14, 0);
  552.     Sleep(0.5);
  553.     
  554.     # Pan over to Dr. V...
  555.     MoveToFrame(ct_9, 1, 4.3); # m/sec
  556.     SetCameraFOV(45, 1, 0.5);
  557.     Sleep(0.3);
  558.  
  559.     # Walk Volodnikov to Indy...
  560.     AISetMoveSpeed(volod, 1.1);
  561.     AISetLookThing(volod, indy);
  562.     AISetMoveThing(volod, vo_mk_2, 0);
  563.     Sleep(0.3);
  564.     StopKey(indy, in_keyTrack1, 0.0); # end anim turn
  565.     
  566.     # Aim Indy...
  567.     v_tpos = GetThingPos(volod);
  568.     v_ipos = GetThingPos(indy);
  569.     v_aim = VectorNorm(VectorSub(v_tpos, v_ipos));
  570.     f_X = VectorX(v_aim);
  571.     f_Y = VectorY(v_aim);
  572.     v_aim = VectorSet(f_X, f_Y, 0.0); # remove Z        
  573.     SetThingLook(indy, v_aim);
  574.     
  575.     Sleep(0.6);
  576.     AttachThingToThing(ct_9, volod);
  577.     SetCameraFOV(55, 1, 2.0);
  578.     AIWaitForStop(volod);
  579.     WaitForSound(curSound);
  580.  
  581.     # Cut to single on Volodnikov...
  582.     DetachThing(ct_9);
  583.     SetCameraFocus(2, cam_10a);
  584.     SetCameraSecondaryFocus(2, ct_10);
  585.     SetCameraFOV(50, 0, 0.0);
  586.     vo_keyTrack1 = PlayKey(volod, vo_stand4, 2, 0x10, 0);
  587.  
  588.     # Volodnikov: "In the name of...CCCP..."
  589.     curSound = PlayVoice(volod, vo_incccpname, 1.0, 0);
  590.     PlayKey(volod, vo_SSSR, 4, 0x12, 0);                        #GGJ added
  591.     WaitForSound(curSound);
  592.     
  593.     # Cut to single on Turner...
  594.     SetCameraFocus(2, cam_8);
  595.     SetCameraSecondaryFocus(2, ct_8);
  596.     SetCameraFOV(33, 0, 0.0);
  597.  
  598.     # Turner: "Give me the parts, Jones!  He's a Commie!"
  599.     curSound = PlayVoice(turner, tu_giveparts, 1.0, 0);
  600.     Sleep(0.5);
  601.     PlayKey(turner, tu_creach, 4, 0x12, 0);
  602.     WaitForSound(curSound);
  603.         
  604.     # Cut back to Volodnikov:    
  605.     SetCameraFocus(2, cam_10a);
  606.     SetCameraSecondaryFocus(2, ct_10);
  607.     SetCameraFOV(45, 0, 0.0);
  608.  
  609.     # Volodnikov: "The parts...safer with me.  Your friend is a gangster."
  610.     curSound = PlayVoice(volod, vo_partsafeme, 1.0, 0);
  611.     Sleep(0.5);                                                                #GGJ added
  612.     PlayKey(volod, vo_Gangster, 4, 0x12, 0);
  613.     WaitForSound(curSound);
  614.  
  615.     # Pan to Indy...
  616.     SetCameraInterpSpeed(2, 2.0);
  617.     SetCameraLookInterp(2, 1);
  618.     SetCameraPosInterp(2, 1);
  619.     Sleep(0.01);
  620.     SetCameraFocus(2, cam_10b);
  621.     SetCameraSecondaryFocus(2, ct_12);
  622.     SetCameraFOV(37, 1, 2.0);
  623.     Sleep(0.5);
  624.     SetThingMaxRotVel(indy, 200.0);
  625.     AISetLookThing(indy, in_mk_4);
  626.     Sleep(0.5);
  627.  
  628.     # Indy: "What a choice!"
  629.     curSound = PlayVoice(indy, in_whatchoice, 1.0, 0); # 1.2s
  630.     AIWaitForStop(indy);
  631.  
  632.     # Indy displays parts bundle...
  633.     swapevent = 1; # see callback
  634.     in_keyTrack1 = PlayKey(indy, in_pullimps, 4, 0x14, 0);
  635.     PlaySoundThing(bagSnd, indy, 1.0, -1.0, -1.0, 0x0);        #GGJ
  636.     WaitForSound(curSound);
  637.     PlaySoundLocal(partMus, 1.0, 0.0, 0x0, 0);        #GGJ
  638.     Sleep(0.3); # short beat
  639.     StopKey(volod, vo_keyTrack1, 0.5);            #moved here from above GGJ
  640.  
  641.     # Pan to take in Turner...
  642.     SetCameraInterpSpeed(2, 1.5);
  643.     SetCameraSecondaryFocus(2, ct_13a);
  644.     SetCameraFOV(20, 1, 2.0);
  645.     AISetLookThing(indy, turner);
  646.     in_keyTrack2 = PlayKey(indy, in_stand8, 2, 0x10, 0);
  647.     Sleep(1.5);
  648.  
  649.     # Indy hands his hard-won treasures over to the US agent...
  650.     StopKey(indy, in_keyTrack1, 0.0);
  651.     StopKey(indy, in_keyTrack2, 0.0);
  652.     PlayKey(indy, in_handoverparts, 4, 0x12, 0);
  653.     swapevent = 2; # see callback
  654.     PlayKey(turner, tu_takeparts, 4, 0x12, 1);
  655.  
  656.     # Scour IMP's from inventory...
  657.     ChangeInv(player, imp_1, -1.0);
  658.     ChangeInv(player, imp_2, -1.0);
  659.     ChangeInv(player, imp_3, -1.0);
  660.     ChangeInv(player, imp_4, -1.0);
  661.  
  662.     # Turner stands...
  663.     SetThingFlags(sophia, 0x10); # don't see her in this shot
  664.     SetCollideType(ladder, 0);
  665.     StopKey(turner, tu_keyTrack1, 0.0);
  666.     tu_keyTrack2 = PlayKey(turner, tu_standup, 4, 0x12, 0); # 74x
  667.     
  668.     # Tilt to hold Turner in frame...
  669.     SetCameraInterpSpeed(2, 2.2);
  670.     SetCameraFOV(28, 1, 2.2);
  671.     Sleep(0.01);
  672.     SetCameraSecondaryFocus(2, ct_13b);    
  673.     Sleep(2.2);
  674.     StopKey(turner, tu_keyTrack2, 0.0); # cut off end of stand
  675.     SetThingMaxRotVel(turner, 400.0);
  676.     
  677.     # Turner exits...
  678.     AISetLookThing(turner, tu_mk_1);
  679.     AIWaitForStop(turner);
  680.     AISetMoveThing(turner, tu_mk_1, 0);
  681.     AIWaitForStop(turner);
  682.     DestroyThing(turner);
  683.  
  684.     # Cut to Sophia...
  685.     ClearThingFlags(sophia, 0x10); # now see her
  686.     SetThingFlags(indy, 0x10); # temporarily invisible
  687.     SetCameraLookInterp(2, 0);
  688.     SetCameraPosInterp(2, 0);
  689.     SetCameraFocus(2, cam_5);
  690.     SetCameraSecondaryFocus(2, ct_5b);
  691.     SetCameraFOV(35, 0, 0.0);
  692.  
  693.     # Sophia: "Sorry, Indy..."
  694.     PlayVoice(sophia, so_sorryindy, 1.0, 1);
  695.     
  696.     # She sweeps down a rope ladder...
  697.     SetCameraInterpSpeed(2, 1.5);
  698.     SetCameraLookInterp(2, 1);
  699.     StopKey(sophia, so_keyTrack1, 0.0);
  700.     so_keyTrack1 = PlayKey(sophia, so_dropladder, 4, 0x12, 0); # 77x
  701.     Sleep(0.6);
  702.     SetCameraSecondaryFocus(2, ct_5c);
  703.     StopKey(ladder, ldr_keyTrack1, 0.0);
  704.     PlaySoundThing(ladderDropSnd, ladder, 1, -1.0, -1.0, 0x0);            #GGJ
  705.     PlayKey(ladder, ldr_fall, 4, 0x12, 0);
  706.  
  707.     # Camera tracks ladder fall...
  708.     SetCameraInterpSpeed(2, 1.0);
  709.     Sleep(0.01);
  710.     SetCameraSecondaryFocus(2, ct_5d);
  711.     SetCameraFOV(55, 1, 1.0);
  712.     Sleep(0.7);
  713.     
  714.     # Align Indy offscreen...
  715.     AIEnableHeadTracking(indy, tu_mk_1);
  716.     AIEnableBodyTracking(indy, tu_mk_1);
  717.  
  718.     # Sophia stands up...
  719.     StopKey(sophia, so_keyTrack1, 0.0);
  720.     PlayKey(sophia, so_dropladder, 4, 0x12, 0); # delayed stand, so start now
  721.     Sleep(0.8);
  722.  
  723.     # Cut back to Sophia to catch actual stand action...
  724.     SetCameraLookInterp(2, 0);
  725.     Sleep(0.01);
  726.     SetCameraSecondaryFocus(2, ct_5b);
  727.     SetCameraFOV(35, 0, 0.0);
  728.     
  729.     # Sophia: "And... thanks!"
  730.     PlayVoice(sophia, so_andthanx, 1.0, 0);
  731.     Sleep(1.5);
  732.  
  733.     # Prep V...
  734.     StopKey(volod, vo_gunTrack, 0.0);
  735.     vo_gunTrack = PlayKey(volod, vo_GunPull, 2, 0x14, 0);
  736.  
  737.     # Sophia exits...
  738.     AISetLookThing(sophia, tu_mk_1);
  739.     Sleep(0.2);
  740.     AISetMoveThing(sophia, tu_mk_1, 0); 
  741.     SetThingLight(dynaLight, VectorSet(0.0, 0.0, 0.0), 0.2, 0.01);        #GGJ Turn dynalight off
  742.     SetThingLight(dynaLight1, VectorSet(0.0, 0.0, 0.0), 0.2, 0.01);        #GGJ Turn dynalight off
  743.     SetThingLight(dynaLight2, VectorSet(0.0, 0.0, 0.0), 0.2, 0.01);        #GGJ Turn dynalight off
  744.     Sleep(1.5);
  745.     DestroyThing(sophia);
  746.     ClearThingFlags(indy, 0x10); # he's back
  747.     SetThingAlpha(lightshaft, 1.0);                    #was 1.0, changed to 0.8, then 0.9, then 1.0 again per Hal
  748.  
  749.     # Cut to long shot of Indy and Dr. V...
  750.     SetCameraFocus(2, cam_11);
  751.     SetCameraSecondaryFocus(2, ct_14);
  752.     SetCameraFOV(70, 0, 0.0);
  753.  
  754.     # Volodnikov: "Perhaps it's best...your droogs...betrayal...cost them...lives."
  755.     curSound = PlayVoice(volod, vo_drooglives, 1.0, 0);
  756.  
  757.     # Dolly in slowly...
  758.     SetCameraInterpSpeed(2, 26.0);
  759.     SetCameraLookInterp(2, 1);
  760.     SetCameraPosInterp(2, 1);
  761.     Sleep(0.1);
  762.     SetCameraFocus(2, cam_12);
  763.     SetCameraSecondaryFocus(2, ct_15);
  764.     Sleep(0.5);
  765.     
  766.     # Indy turns back toward Dr. V...
  767.     AIEnableHeadTracking(indy, volod);
  768.     AIEnableBodyTracking(indy, volod);    
  769.     WaitForSound(curSound);
  770.     AIDisableHeadTracking(indy);
  771.     AIDisableBodyTracking(indy);
  772.     
  773.     # RT: Put Volodya's gun away...
  774.     swapevent = 3; # see callback
  775.     StopKey(volod, vo_gunTrack, 0.0);
  776.     PlayKey(volod, vo_GunPut, 4, 0x12, 0);
  777.         
  778.     # Indy: "Yeah, that cheers me up."
  779.     curSound = PlayVoice(indy, in_cheersmeup, 1.0, 0);
  780.     Sleep(1.5);
  781.     ThingFadeAnim(lightshaft, 1.0, 0.0, 2.0, 0); # soft light
  782.     SetThingLight(dynaLight, VectorSet(1.0, 1.0, 1.0), 0.2, 2.0);        #GGJ
  783.     SetThingLight(dynaLight1, VectorSet(1.0, 1.0, 1.0), 0.2, 2.0);        #GGJ
  784.     SetThingLight(dynaLight2, VectorSet(1.0, 1.0, 1.0), 0.2, 2.0);        #GGJ
  785.     WaitForSound(curSound);
  786.  
  787.     # Volodnikov: "Those ignorant fools...cause of all the...turmoil...waits..."
  788.     curSound = PlayVoice(volod, vo_babelturmoil, 1.0, 0);
  789.     PlayKey(volod, vo_bothup, 4, 0x12, 1); # 52x
  790.     Sleep(1.0);
  791.     PlayKey(volod, vo_leftup3, 4, 0x12, 1);
  792.  
  793.     PlayKey(volod, vo_iKnow, 4, 0x12, 0);
  794.  
  795.     Sleep(3.75);
  796.     SetCameraFOV(22, 1, 6.0);
  797.     Sleep(5.0);
  798.     in_keyTrack1 = PlayKey(indy, in_armsCrossed, 2, 0x10, 0);
  799.     PlayKey(indy, in_crossArms, 4, 0x12, 0);
  800.     WaitForSound(curSound);
  801.  
  802.     # Indy: "Who?  What are you yammering about?"
  803.     curSound = PlayVoice(indy, in_yammer, 1.0, 0);
  804.     WaitForSound(curSound);
  805.  
  806.     # Cut to Volodnikov...
  807.     SetCameraLookInterp(2, 0);
  808.     SetCameraPosInterp(2, 0);
  809.     SetCameraFocus(2, cam_10a);
  810.     SetCameraSecondaryFocus(2, ct_11);
  811.     SetCameraFOV(60, 0, 0.0);
  812.  
  813.     # Volodnikov: "Da!  The Lord Marduk...will have his revenge..."
  814.     curSound = PlayVoice(volod, vo_mardukrevenge, 1.0, 0);
  815.     vo_keyTrack1 = PlayKey(volod, vo_armsATback, 2, 0x10, 0);
  816.     PlayKey(volod, vo_damarduk, 4, 0x12, 0);
  817.     Sleep(2.0);
  818.     StopKey(indy, in_keyTrack1, 0.5);
  819.     Sleep(12.2);
  820.     
  821.     # Dr. V cleans his glasses...
  822.     swapevent = 4; # see callback
  823.     vo_keyTrack2 = PlayKey(volod, vo_cleanglasses, 4, 0x12, 0);
  824.     WaitForSound(curSound);
  825.  
  826.     # Volodnikov: "Luckily, you and I...too wise to become...ensnared."
  827.     curSound = PlayVoice(volod, vo_luckyprofs, 1.0, 0); # 6 secs
  828.     Sleep(2.5);
  829.  
  830.     # Cut to Indy getting disturbed...        
  831.     SetCameraFocus(2, cam_12);
  832.     SetCameraSecondaryFocus(2, ct_15);
  833.     SetCameraFOV(25, 1, 3.4);
  834.     in_keyTrack1 = PlayKey(indy, in_handsONhips, 2, 0x10, 0);
  835.     PlayKey(indy, in_handsTOhips, 4, 0x12, 1); # 26x (.87 seconds)
  836.     PlayKey(indy, in_think, 4, 0x12, 0);
  837.     Sleep(0.3);
  838.     PauseKey(volod, vo_keyTrack2); # hang on to his gesture!
  839.     WaitForSound(curSound);
  840.  
  841.     # Randy... must we force V no-glass head...?
  842.     RestoreThingMesh(volod, vo_swapItem1);
  843.     vo_swapItem1 = SetThingMesh(volod, 2, mod_vo_head, 0);    
  844.  
  845.     # Another cut of Dr. V...
  846.     SetCameraFocus(2, cam_10c);
  847.     SetCameraSecondaryFocus(2, ct_16);
  848.     SetCameraFOV(45, 0, 0.0);
  849.     
  850.     # Prep Indy for exit while offscreen...
  851.     SetThingFlags(indy, 0x10); # invisible again
  852.     TeleportThing(indy, in_mk_7); # prep for exit
  853.     
  854.     # Dr. V puts his glasses back on...
  855.     swapevent = 5; # see callback    
  856.     ResumeKey(volod, vo_keyTrack2);
  857.  
  858.     # Volodnikov: "And too timid."
  859.     curSound = PlayVoice(volod, vo_tootimid, 1.0, 0);
  860.     WaitForSound(curSound);
  861.     Sleep(0.2);
  862.  
  863.     # Volodnikov: "Back home to our tea and books now, eh?"
  864.     curSound = PlayVoice(volod, vo_backtobooks, 1.0, 0);
  865.     StopKey(volod, vo_keyTrack1, 0.0);
  866.     vo_keyTrack1 = PlayKey(volod, vo_armsATfold, 2, 0x10, 0);
  867.     PlayKey(volod, vo_leftup2, 4, 0x12, 0);
  868.     
  869.     # Ready Indy on ladder...
  870.     SetCollideType(indy, 0);
  871.     ClearThingFlags(indy, 0x4000); # shadow off
  872.     ClearThingFlags(indy, 0x10); # visibility back on
  873.     StopKey(indy, in_keyTrack1, 0.0);
  874.     in_keyTrack1 = PlayKey(indy, in_climbladder, 4, 0x12, 0);
  875.     Sleep(0.01);
  876.     PauseKey(indy, in_keyTrack1); # hold him in place
  877.     Sleep(2.0);
  878.     SetCollideType(volod, 0);
  879.     SetThingMaxHeadVel(volod, 100.0);
  880.     AIEnableHeadTracking(volod, indy);
  881.     SetCameraInterpSpeed(2, 1.0);
  882.     SetCameraLookInterp(2, 1);
  883.     SetCameraPosInterp(2, 1);
  884.     Sleep(0.8);
  885.  
  886.     # Pan to Indy...
  887.     SetCameraFocus(2, cam_10b);
  888.     SetCameraSecondaryFocus(2, ct_17);
  889.     SetCameraFOV(65, 1, 3.0);
  890.     Sleep(1.1);
  891.  
  892.     # Indy exits...
  893.     ResumeKey(indy, in_keyTrack1); # now climb out
  894.     SetCameraInterpSpeed(2, 2.0);
  895.     SetCameraPosInterp(2, 0);
  896.     Sleep(0.01);
  897.     SetCameraSecondaryFocus(2, ct_18);
  898.     Sleep(2.47);
  899.     AISetMoveSpeed(indy, 3.2);
  900.     AISetLookThing(indy, tu_mk_1);
  901.     AISetMoveThing(indy, tu_mk_1, 0);
  902.     WaitForSound(curSound);
  903.     AIWaitForStop(indy);
  904.     SetThingFlags(indy, 0x10);
  905.     Sleep(1.0);                                #2 second sleep reduced to 1 second.  GGJ
  906.     
  907.     ThingFadeAnim(fadePlate, 0, 1, 1.0, 0);    #GGJ
  908.     StopSound(windTrack, 1.0);                #GGJ
  909.     
  910.     Sleep(2.0);                                #GGJ
  911.  
  912.     # Clean-up...
  913.     StopKey(indy, in_keyTrack1, 0.0);
  914.     StopKey(volod, vo_keyTrack1, 0.0);
  915.     DestroyThing(indy);
  916.     DestroyThing(volod);
  917.  
  918.     # TO DO: call endlevel cog...
  919.  
  920.     EndCutScene();                                        # Added GGJ
  921.     JonesEndLevel();                                    # Added GGJ
  922.     
  923.     # Restore control (TEMP!!!)...
  924. #    ClearThingFlags(player, 0x80000);                    # Removed GGJ
  925. #    SetCameraLookInterp(2, 0);                            # Removed GGJ
  926. #    SetCameraPosInterp(2, 0);                            # Removed GGJ
  927. #    SetCurrentCamera(curCam);                            # Removed GGJ
  928. #    ResetCameraFOV(0, 0.0);                                # Removed GGJ
  929. #    ClearActorFlags(player, 0x200000);                    # Removed GGJ
  930.  
  931. #    EndCutScene();                                        # Removed GGJ
  932.  
  933.     return;
  934.  
  935. # ..............................................................................
  936.  
  937. callback:
  938.  
  939.     if (swapevent == 1)
  940.     {
  941.         # Indy displays IMP's...
  942.         in_swapItem1 = SetThingMesh(indy, 15, mod_in_imps, 0);
  943.         swapevent = 0; # reset
  944.     }
  945.     
  946.     else if (swapevent == 2)
  947.     {
  948.         # Empty Indy's hand...
  949.         RestoreThingMesh(indy, in_swapItem1);
  950.  
  951.         # Turner takes IMPs...
  952.         tu_swapItem1 = SetThingMesh(turner, 5, mod_tu_imps, 0);
  953.         swapevent = 0; # reset
  954.     }
  955.  
  956.     else if (swapevent == 3)
  957.     {
  958.         # RT: Return gun to holster...
  959.         RestoreThingMesh(volod, vo_swapItem1);
  960.         RestoreThingMesh(volod, vo_swapItem2);
  961.         swapevent = 0; # reset
  962.     }
  963.  
  964.     else if (swapevent == 4)
  965.     {
  966.         # Volodnikov removes his glasses...
  967.         vo_swapItem1 = SetThingMesh(volod, 2, mod_vo_head, 0); # no glasses head
  968.         vo_swapItem2 = SetThingMesh(volod, 8, mod_vo_glasses, 0); # hand with glasses
  969.  
  970.         # RT: Set up alternate heads
  971.         SetThingVoiceHeads(volod, "vohead", "head_vo_noglasses.3do", "head_vo_nospecs_asound.3do", "head_vo_nospecs_amsound.3do", "head_vo_nospecs_osound.3do");
  972.  
  973.         swapevent = 0; # reset
  974.     }
  975.     
  976.     else if (swapevent == 5)
  977.     {
  978.         # Volodnikov replaces his glasses...
  979.         RestoreThingMesh(volod, vo_swapItem1);
  980.         RestoreThingMesh(volod, vo_swapItem2);
  981.  
  982.         # RT: Restore default heads
  983.         SetThingVoiceHeads(volod, "vohead", "head_vo_msound.3do", "head_vo_asound.3do", "head_vo_amsound.3do", "head_vo_osound.3do");
  984.         
  985.         swapevent = 0; # reset
  986.     }
  987.     
  988.     return;
  989.  
  990. # ..............................................................................
  991.  
  992. pulse:
  993.  
  994.     rumbleVol = rumbleVol * 1.001;
  995.     #PrintFlex(rumblevol);
  996.     ChangeSoundVol(rumbleTrack, rumbleVol, 0.1);
  997.     #PrintInt(rumbletrack);
  998.    
  999.     vibe = RandBetween(1, 4);
  1000.     if (vibe == 1)
  1001.     {
  1002.         posOffset = '-0.005 0.00 -0.002';
  1003.         angOffset = '0.00 -0.002 0.002';
  1004.     }
  1005.     if (vibe == 2)
  1006.     {
  1007.         posOffset = '0.005 -0.005 0.002';
  1008.         angOffset = '0.002 0.00 -0.002';
  1009.     }
  1010.     if (vibe == 3)
  1011.     {
  1012.         posOffset = '0.002 0.005 -0.005';
  1013.         angOffset = '-0.002 0.002 -0.002';
  1014.     }
  1015.     if (vibe == 4)
  1016.     {
  1017.         posOffset = '-0.002 0.00 0.005';
  1018.         angOffset = '0.00 0.00 0.002';
  1019.     }
  1020.  
  1021.     SetPOVShake(posOffSet, angOffSet, 200.0, 200.0);
  1022.  
  1023.     return;
  1024.  
  1025. end
  1026.